
package org.report.pdf.object;

// *************************************************************************/
// Charada Soft
// Area de Desarrollo de Sistemas de Información
// *************************************************************************/
// Proyecto : java creator document
// Archivo : ImageCreator.java
// Descripcion : Clase ImageCreator
// *************************************************************************/
// Version : 1.0.5
// Fecha de Creación: 11 de Julio de 2014
// Author : Daniel Andres Castillo Pedroza
// *************************************************************************/

import com.lowagie.text.BadElementException;
import com.lowagie.text.Image;
import java.io.IOException;
import java.net.URL;

public class ImageCreator {
    
    // Atributos de la clase ImageCreator
    
    private int width, height, alignment;
    
    // Metodos de la clase ImageCreator
    
    /**
      *  
      * @param alignment 
    */

    public void setAlignment(int alignment) {
        this.alignment = alignment;
    }
    
    /**
      * 
      * @param height 
    */

    public void setHeight(int height) {
        this.height = height;
    }
    
    /**
      * 
      * @param width 
    */

    public void setWidth(int width) {
        this.width = width;
    }
    
    /**
      * 
      * @param rootImage
      * @return 
    */
    
    public Image generateImageOfFile(String rootImage) {
        try {
            // Instanciando y configurando imagen desde un Archivo
            Image image = Image.getInstance(rootImage); 
            image.scaleToFit(width,height); image.setAlignment(alignment);
            
            return image; // Retornando Imagen Generada
        } // Creando imagen apartir de una ruta del Sistema
        
        catch (IOException ex) {
            System.err.println(ex.getMessage()); return null;
        } // Error al tratar de crear Imagen
        
        catch (BadElementException ex) {
            System.err.println(ex.getMessage()); return null;
        } // Error al tratar de crear Imagen
    }
    
    /**
      * 
      * @param urlImage
      * @return 
    */
    
    public Image generateImageOfURL(URL urlImage) {
        try {
            // Instanciando y configurando imagen desde una URL
            Image image = Image.getInstance(urlImage); 
            image.scaleToFit(width,height); image.setAlignment(alignment); 
            
            return image; // Retornando Imagen Generada
        } // Creando imagen apartir de una URL
        
        catch (IOException ex) {
            System.err.println(ex.getMessage()); return null;
        } // Error al tratar de crear Imagen
        
        catch (BadElementException ex) {
            System.err.println(ex.getMessage()); return null;
        } // Error al tratar de crear Imagen
    }
    
    // Metodos estáticos de la clase ImageCreator
    
    /**
      * 
      * @param rootFile
      * @param width
      * @param height
      * @param alignment
      * @return 
    */
    
    public static Image createImage(String rootFile, int width, int height, int alignment) {
        // Instanciando y configurando objeto para Imagen desde un Archivo
        ImageCreator managerImage = new ImageCreator();
        managerImage.setWidth(width); managerImage.setHeight(height);
        managerImage.setAlignment(alignment);
        
        return managerImage.generateImageOfFile(rootFile); // Retornando Imagen Generada
    }
    
    /**
      * 
      * @param urlImage
      * @param width
      * @param height
      * @param alignment
      * @return 
    */
    
    public static Image createImage(URL urlImage, int width, int height, int alignment) {
         // Instanciando y configurando objeto para Imagen desde una URL
        ImageCreator managerImage = new ImageCreator();
        managerImage.setWidth(width); managerImage.setHeight(height);
        managerImage.setAlignment(alignment);
        
        return managerImage.generateImageOfURL(urlImage); // Retornando Imagen Generada
    }
}